package com.prim.update.impl;

import com.prim.update.interfaces.IUpdateExplorer;
import com.prim.update.model.UpdateInfo;
import com.prim.update.interfaces.IUpdateConverter;
import com.prim.update.model.LzyResponse;
import com.prim.update.state.StateType;
import com.prim.update.state.UpdateState;
import com.prim.update.utils.GsonUtill;

/**
 * ================================================
 * 作    者：linksus
 * 版    本：1.0
 * 创建日期：3/5 0005
 * 描    述：具体实现者 --> json 转换类
 * 此类可以重写
 * 修订历史：
 * ================================================
 */
public class UpdateConverter implements IUpdateConverter {

    /**
     * 重要的事情说三遍
     * 请自行修改,不同的项目服务器和客户端约定一个数表示成功
     * 请自行修改,不同的项目服务器会和客户端约定一个数表示成功
     * 请自行修改,不同的项目服务器会和客户端约定一个数表示成功
     */
    private String SUCCESS = "0";

    private static final String TAG = "UpdateConverter";

    @Override
    public UpdateInfo convertJson(String info, IUpdateExplorer explorer) throws Throwable {
        UpdateState.setState(StateType.CONVERTER);
        try {
            // 重要的事情说三遍
            // json bean 自行修改
            // json bean 自行修改
            // json bean 自行修改
            LzyResponse lzy = GsonUtill.getObejctFromJSON(info, LzyResponse.class);
            if (lzy.result.errorCode.equals(SUCCESS)) {
                // 重要的事情说三遍
                // 如果bean 不一样请注意更换为UpdateInfo bean
                // 如果bean 不一样请注意更换为UpdateInfo bean
                // 如果bean 不一样请注意更换为UpdateInfo bean
                return lzy.data;
            } else {
                explorer.stop();
                return null;
            }
        } catch (Exception e) {
            explorer.stop();
            return null;
        }
    }
}
